After applying these manifests https://github.com/prometheus-operator/kube-prometheus/blob/main/kustomization.yaml I want to create AlertManager webhook:
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: custom
spec:
route:
receiver: custom
groupBy: ['job']
groupWait: 30s
groupInterval: 5m
repeatInterval: 12h
receivers:
- name: custom
webhook_configs:
- send_resolved: true
url: https://example.com
getting an error:
error: error validating "alertmanagerconfig.yaml": error validating data: ValidationError(AlertmanagerConfig.spec.receivers[0]): unknown field "webhook_configs" in com.coreos.monitoring.v1alpha1.AlertmanagerConfig.spec.receivers; if you choose to ignore these errors, turn validation off with --validate=false
How to fix that?
Taking this link as reference,
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: custom
spec:
receivers:
- name: custom
webhookConfigs:
- send_resolved: true
url: https://example.com
You can also check field using kubectl explain command
kubectl explain alertmanagerconfig.spec.receivers
The problem is that you are using the configuration reference for the actual AlertManager application and not the one for the Kubernetes Custom Resource provided by the Prometheus Operator.
The Prometheus Operator takes the configuration provided in the form of custom resources like AlertManagerConfig and converts them into actual AlertManager config and updates the configuration file the application uses. That is a part of the reason why you use an operator in the first place. It makes these things convenient for you.
So the actual configuration reference you should be using here is this. This part of the Prometheus Operator's github readme lists down the available custom resources you can use with it.
In addition to the answer from Kiran (Thanks!) one small correction - it is actually sendResolved and not send_resolved.
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: custom
spec:
receivers:
- name: custom
webhookConfigs:
- sendResolved: true
url: https://example.com